Automated Clustering and Program Repair for Introductory Programming Assignments
نویسندگان
چکیده
Providing feedback on programming assignments is a tedious task for the instructor, and even impossible in large MOOCs with thousands of students. In this paper, we present a novel technique for automatic feedback generation: (1) For a given programming assignment, we automatically cluster the correct student attempts based on their underlying strategy. From each class we select one student attempt as a specification for the given strategy. (2) Given an incorrect student attempt we run a repair procedure against all specifications, and automatically generate the minimal repair based on one of them. We evaluated the approach on 56,806 student attempts over 18 problems from an undergraduate programming course and a MOOC course. In our evaluation we first automatically clustered correct attempts and generated specifications from the correct student attempts and then used these specifications to repair the incorrect student attempts without any human intervention, finding repairs for 86% of incorrect student attempts in around 7 seconds per attempt.
منابع مشابه
Automated Correction for Syntax Errors in Programming Assignments using Recurrent Neural Networks
We present a method for automatically generating repair feedback for syntax errors for introductory programming problems. Syntax errors constitute one of the largest classes of errors (34%) in our dataset of student submissions obtained from a MOOC course on edX. The previous techniques for generating automated feedback on programming assignments have focused on functional correctness and style...
متن کاملSynthesizing Imperative Programs for Introductory Programming Assignments
We present a novel algorithm that synthesizes imperative programs for introductory programming courses. Given a set of input-output examples and a partial program, our algorithm generates a complete program that is consistent with every example. Our key idea is to combine enumerative program synthesis and static analysis, which aggressively prunes out a large search space while guaranteeing to ...
متن کاملSearch, Align, and Repair: Data-Driven Feedback Generation for Introductory Programming Exercises
This paper introduces the “Search, Align, and Repair” datadriven program repair framework to automate feedback generation for introductory programming exercises. Distinct from existing techniques, our goal is to develop an efficient, fully automated, and problem-agnostic technique for large or MOOC-scale introductory programming courses. We leverage the large amount of available student submiss...
متن کاملProgram Repair via Direct State Manipulation
1 University of Wisconsin-Madison 2 Purdue University Microsoft Abstract. The goal of program repair is to automatically fix programs to meet a specification. We propose a new specification mechanism, direct manipulation, in which the programmer can visualize the trace of a buggy program on a failing input and convey the intended program behaviour by manipulating variable values at some locatio...
متن کاملOn automated grading of programming assignments in an academic institution
Practise is one of the most important steps in learning the art of computer programming. Unfortunately, human grading of programming assignments is a tedious and error-prone task, a problem compounded by the large enrolments of many programming courses. As a result, students in such courses tend to be given fewer programming assignments than should be ideally given. One solution to this problem...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1603.03165 شماره
صفحات -
تاریخ انتشار 2016